#include "CardsFactory.h"
#include "CardBase.h"

#include "details/CSha.h"
#include "details/CShan.h"
#include "details/CTao.h"

#include "details/CShanDian.h"
#include "details/CLeBuSiShu.h"
#include "details/CWuXieKeJi.h"
#include "details/CJieDaoShaRen.h"
#include "details/CWuGuFengDeng.h"
#include "details/CWuZhongShengYou.h"
#include "details/CJueDou.h"
#include "details/CTaoYuanJieYi.h"
#include "details/CNanManRuQin.h"
#include "details/CWanJianQiFa.h"
#include "details/CShunShouQianYang.h"
#include "details/CGuoHeChaiQiao.h"

#include "details/CZhuaHuangFeiDian.h"
#include "details/CDiLu.h"
#include "details/CJueYing.h"
#include "details/CChiTu.h"
#include "details/CZiXin.h"
#include "details/CDaWan.h"


#include "details/CZhuGeLianNu.h"
#include "details/CHanBingJian.h"
#include "details/CQingGangJian.h"
#include "details/CCiXiongShuangGuJian.h"
#include "details/CGuanShiFu.h"
#include "details/CQingLongYanYueDao.h"
#include "details/CZhangBaSheMao.h"
#include "details/CFangTianHuaJi.h"
#include "details/CQiLinGong.h"

#include "details/CRenWangDun.h"
#include "details/CBaGuaZhen.h"

CardBase * CardsFactory::CreateCards( CardType & card )
{
	CardBase *pCard = NULL;
	switch(card.m_cCardType)
	{
	case card_sha:
		pCard = new CSha(card);
		break;
	case card_shan:
		pCard = new CShan(card);
		break;
	case card_tao:
		pCard = new CTao(card);
		break;


	case card_shan_dian:
		pCard = new CShanDian(card);
		break;
	case card_le_bu_si_shu:
		pCard = new CLeBuSiShu(card);
		break;
	case card_wu_xie_ke_ji:
		pCard = new CWuXieKeJi(card);
		break;
	case card_jie_dao_sha_ren:
		pCard = new CJieDaoShaRen(card);
		break;
	case card_wu_gu_feng_deng:
		pCard = new CWuGuFengDeng(card);
		break;
	case card_wu_zhong_sheng_you:
		pCard = new CWuZhongShengYou(card);
		break;
	case card_jue_dou:
		pCard = new CJueDou(card);
		break;
	case card_tao_yuan_jie_yi:
		pCard = new CTaoYuanJieYi(card);
		break;
	case card_nan_man_ru_qin:
		pCard = new CNanManRuQin(card);
		break;
	case card_wan_jian_qi_fa:
		pCard = new CWanJianQiFa(card);
		break;
	case card_shun_shou_qian_yang:
		pCard = new CShunShouQianYang(card);
		break;
	case card_guo_he_chai_qiao:
		pCard = new CGuoHeChaiQiao(card);
		break;


	case card_zhua_huang_fei_dian:
		pCard = new CZhuaHuangFeiDian(card); 
		break;
	case card_di_lu:
		pCard = new CDiLu(card);
		break;
	case card_jue_ying:
		pCard = new CJueYing(card);
		break;
	case card_chi_tu:
		pCard = new CChiTu(card);
		break;
	case card_zi_xin:
		pCard = new CZiXin(card);
		break;
	case card_da_wan:
		pCard = new CDaWan(card);
		break;

	
	case card_zhu_ge_lian_nu:
		pCard = new CZhuGeLianNu(card);
		break;
	case card_han_bing_jian:
		pCard = new CHanBingJian(card);
		break;
	case card_qing_gang_jian:
		pCard = new CQingGangJian(card);
		break;
	case card_ci_xiong_shuang_gu_jian:
		pCard = new CCiXiongShuangGuJian(card);
		break;
	case card_guan_shi_fu:
		pCard = new CGuanShiFu(card);
		break;
	case card_qing_long_yan_yue_dao:
		pCard = new CQingLongYanYueDao(card);
		break;
	case card_zhang_ba_she_mao:
		pCard = new CZhangBaSheMao(card);
		break;
	case card_fang_tian_hua_ji:
		pCard = new CFangTianHuaJi(card);
		break;
	case card_qi_lin_gong:
		pCard = new CQiLinGong(card);
		break;


	case card_ren_wang_dun:
		pCard = new CRenWangDun(card);
		break;
	case card_ba_guan_zhen:
		pCard = new CBaGuaZhen(card);
		break;

	default:break;
	}
}